/**
 * 
 */
package modelo.tests;

import junit.framework.TestCase;
import modelo.funciones.Funcion;
import modelo.funciones.OperacionEntreFunciones;
import modelo.funciones.Potencia;
import modelo.funciones.RaizCuadrada;
import modelo.operaciones.Operacion;
import modelo.operaciones.OperacionSobreFunciones;
import modelo.operaciones.Composicion;
/**
 * @author Laura
 *
 */
public class ComposicionTest extends TestCase {

	private Operacion operacion;
	private Funcion funcion1 ;
	private Funcion funcion2 ;
	private Funcion funcion3;
	
	/* (non-Javadoc)
	 * @see junit.framework.TestCase#setUp()
	 */
	@Override
	protected void setUp() throws Exception {
		super.setUp();
		this.funcion1 = new RaizCuadrada();
		this.funcion2 = new Potencia(2);
		this.operacion = new Composicion();
		funcion3= new OperacionEntreFunciones(funcion1,funcion2,operacion);
	}

	public void testAplicar(){ 
		double doble = this.operacion.aplicar(funcion1,funcion2,3d);	
		assertTrue(doble == 3d);
	}
	
	public void testDerivar(){
		double valor= OperacionSobreFunciones.calcularDerivada(funcion3, 2d);
		assertTrue(valor == 1d);
	}
}
